package band.wukong.practice.java.core.pack.util;

import java.util.Optional;

/**
 * Ref: http://www.importnew.com/6675.html
 *
 * @author wukong(wukonggg@139.com)
 */
public class OptionalSample {

    public static void main(String[] args) {
//        create();
//        createNull();
        get();
    }

    /**
     * 。调用工厂方法创建Optional实例.
     */
    private static void create() {
        Optional<String> name = Optional.of("Metallica");

        //传入参数为null，抛出NullPointerException.
//        Optional<String> someNull = Optional.of(null);
    }

    /**
     * ofNullable. 创建了一个不包含任何值的Optional实例。
     */
    private static void createNull() {
        //例如，值为'null'
        Optional empty = Optional.ofNullable(null);
    }

    /**
     * isPresent and get
     */
    private static void get() {
        Optional<String> name = Optional.of("Metallica");
        //isPresent方法用来检查Optional实例中是否包含值
        if (name.isPresent()) {
            //在Optional实例内调用get()返回已存在的值
            System.out.println(name.get()); //输出Metallica
        }
    }
}
